레드팀

레드팀풀체인_09_횡적 이동

작성자 : Heehyeon Yoo|2025-12-30
# RedTeam# LateralMovement# Ligolo-ng# SMB# OpSec

1. 개요

횡적 이동(Lateral Movement)은 장악한 거점 시스템에서 네트워크 내부의 다른 호스트, 서버, 클라우드, 애플리케이션 등으로 이동하는 단계를 의미한다.

  • 레드팀의 관점: 모의해킹과 달리 범위(Scope)의 제약이 거의 없다. 호스트 간 이동뿐만 아니라 VDI, PAM, SaaS, Cloud, OT 망으로의 이동 등 창의적이고 다각적인 접근이 필요하다.
  • 전략: 불필요한 이동을 최소화하여 탐지 확률을 낮추고(Least Noise), 목표 달성을 위한 최단/최적 경로를 설계해야 한다.

2. 주요 기법 및 OpSec 고려사항

2.1. SMB Pivot 및 PsExec

전통적인 PsExec 기법은 SMB 프로토콜(TCP 445)과 윈도우 서비스 관리자(SCM)를 이용한다. 하지만 기본 설정(Default Configuration) 사용 시 EDR에 즉시 탐지되므로 철저한 수정(Customization)이 필요하다.

탐지 포인트 및 우회 방안(Know Your TTPs):

  1. 서비스 바이너리(Service Binary): C2 프레임워크(Sliver 등)가 생성하는 기본 바이너리는 시그니처 기반 탐지에 취약하다.
    • 우회: 사용자 정의(Custom) 서비스 바이너리를 직접 컴파일하여 사용하거나, Config.IsService 플래그를 수정하여 소스코드를 변형해야 한다.
  2. 서비스 이름 및 설명(Service Name & Description): Sliver, Sliver Implant 등의 기본 이름은 즉시 탐지된다.
    • 우회: 실제 존재하는 서비스와 유사하게 위장(Masquerading)한다.(예: Windows Update Helper, ChoiUpdater 등).
  3. 네임드 파이프(Named Pipe): SMB 통신을 위해 생성되는 파이프 이름이 랜덤하거나 수상하면 탐지된다.
    • 우회: 정상적인 윈도우 파이프 이름(crashpad, spoolss 등)을 모방하여 suffix를 붙이는 방식을 사용한다.(예: \pipe\crashpad_RT_USER)

2.2. VDI 및 PAM 우회(Ligolo-ng)

망분리(Network Segmentation) 환경이나 PAM(Privileged Access Management) 솔루션을 우회하기 위해 고속 터널링 도구인 Ligolo-ng를 활용한다.

  • SOCKS Proxy vs Ligolo-ng:
    • SOCKS Proxy: TCP 연결을 중계하지만 오버헤드가 크고 속도가 느려 RDP/VDI 같은 GUI 기반 프로토콜 사용 시 지연(Latency)이 심하다.
    • Ligolo-ng: TUN 인터페이스(Layer 3 VPN)를 생성하여 커널 레벨에서 패킷을 처리하므로 속도가 빠르고 안정적이다.
  • 공격 시나리오(IT Forest -> DEV Forest):
    1. 초기 침투: AWS JumpHost 장악.
    2. 도구 무기화: Ligolo-ng 에이전트(agent.exe)를 Donut을 이용해 쉘코드(Shellcode)로 변환한다.
    3. 프로세스 인젝션(Process Injection): RuntimeBroker.exe 등 사용자가 실행 중이며 자동 재실행(Auto-restart)되는 프로세스에 쉘코드를 인젝션한다. 주의: 시스템 프로세스(System Process) 인젝션 시 BSOD 위험 존재.
    4. 역방향 터널링(Reverse Tunneling): 내부망의 트래픽을 공격자 C2 서버로 라우팅한다.
    5. PAM 악용: 합법적인 PAM 솔루션의 'File Transfer' 기능을 악용하여 폐쇄망 점프 호스트(Jump Host)로 악성코드(DLL Loader 등)를 전송한다.
    6. LOLBins 실행: rundll32.exe를 사용하여 업로드된 DLL을 실행, 폐쇄망 내부에서 C2로 연결(Callback)을 맺는다.

3. SMB Named Pipe Pivot

시나리오: AWS JumpHost -> SQL01 횡적 이동

  1. Named Pipe 리스너 생성:
    • 탐지 회피를 위해 정상 파이프와 유사한 이름(crashpad)을 사용한다.
  2. Talk Token 생성(Impersonation):
    • Cobalt Roasting 등을 통해 획득한 자격 증명으로 make_token을 수행, 타겟 시스템(SQL01)의 로컬 관리자 권한을 가진 도메인 유저 컨텍스트를 생성한다.
  3. PsExec 실행(Customized):
    • Service Name: MssqlUpdater 등으로 위장.
    • Binary Path: C:\Windows\Temp 등 쓰기 권한이 있는 경로 지정.
    • 결과: SQL01SYSTEM 권한 세션 획득.(주의: SYSTEM 권한은 도메인 네트워크 자원 접근 시 머신 계정 컨텍스트를 사용하므로, 도메인 유저 권한이 필요할 경우 추가적인 토큰 탈취가 필요하다.)